Brushless DC fan module incorporating integral fan control circuit with a communication port for receiving digital commands to control fan

ABSTRACT

A fan module includes integral fan control circuitry which independently implements a self-contained start and run motor control loop and also includes a communications port to accept commands from a host processor and to provide status and other data in response to queries from the host processor. In one embodiment, the fan module interfaces with a two-wire serial bus, such as an 1 2 C bus or SMbus, and accepts commands and provides status and data in a serial digital format. A variety of commands such as on/off, and various speed control settings may be received from the host system. The actual speed of the fan may be reported back when queried by the host system. In some embodiments the temperature of the fan or of the air flow through the fan may be reported bark when queried. The entire fan control circuit may be incorporated within the fan housing and a simple serial two-wire interface may be provided in addition to the two power terminals for the fan, resulting in a compact four-wire interface for the fan module.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of and is a continuation ofU.S. Nonprovisional application Ser. No. 09/540,291, entitled,“Brushless DC Fan Module Incorporating Integral Fan Control Circuit Witha Communication Port For Receiving Digital Commands to Control Fan.”

[0002] The benefit of 35 U.S.C. §120 is claimed for all of the abovereferenced commonly owned applications. The contents of the applicationsreferenced in the tables above are not necessarily identical to thecontents of this application.

[0003] Any references cited hereafter are incorporated by reference tothe maximum extent allowable by law. To the extent a reference may notbe fully incorporated herein, it is incorporated by reference forbackground purposes and indicative of the knowledge of one of ordinaryskill in the art.

BACKGROUND OF THE INVENTION

[0004] 1. Field of the Invention

[0005] The present invention relates to the control of brushless DCmotors, and particularly relates to the control of brushless DC motorswithin fan modules of a type suitable for use in personal computers andsimilar electronic equipment.

[0006] 2. Description of Related Art

[0007] Brushless DC fans have found wide use in cooling electronicequipment such as personal computers. Such fans incorporate a brushlessDC motor (BLDC motor) which includes a stationary armature. At least twowinding stages are configured around an armature core to provide apredetermined number of poles, and permanent magnets are mounted on therotor of the fan. Frequently such fans incorporate two winding stageswhich are arranged to generate four magnetic poles in the armature,although greater numbers are possible. A traditional two-terminal BLDCfan motor usually incorporates circuitry to electronically commutate thewinding stages to operate the motor at its full speed for the particularpower supply voltage applied. Such circuitry frequently incorporates arotor sensor to determine when the rotor has rotated sufficiently forthe next winding stage to be energized. BLDC motors are also frequentlyknown as electronically commutated motors.

[0008] BLDC fans have significant advantages over other kinds of fans.There is no rotating commutator or brush assembly as with traditional DCmotors. Consequently, much fewer dust particles are generated which, ifshed, may contaminate the equipment. There are fewer parts to wear out,and there is much less ignition noise than with a brush assembly.Furthermore, the magnetic coils of a BLDC motor are mounted on a rigidframe which improves the thermal dissipation of the motor and providesfor greater structural integrity of the motor. BLDC fan motors are alsomuch more electrically quiet than other kinds of motors previously used.

[0009] Despite all of these advantages, BLDC motors typically still wearout faster than the electronic systems they are included to protect.Mainly, such wear-out is caused by a failure of the bearings supportingthe rotor assembly. Also, any fan generates acoustic noise which may beergonomically displeasing to an operator of equipment incorporating sucha fan. Likewise the all fans, the fan may become blocked by foreignmatter, or filters included in the air flow path generated by the fanmay become increasingly clogged with particulate matter which results ina higher strain on the motor driving the fan, and ultimately, aninability of the fan to provide the air flow for which the system wasdesigned.

[0010] To reduce the detrimental aspects of using BLDC fans, fan-speedmanagement has proven useful to drive such fans only when needed andonly at a speed sufficiently useful to cool the system within which thefan is incorporated. Such fan-speed management results in less acousticnoise either, because the fan is totally off at certain times or isthrottled to a much lower speed for a typical operation than its maximumspeed which is only driven in a worst-case cooling demand. By throttlingback the power of a BLDC fan, significant power dissipation is alsosaved, which is particularly important in battery-powered systems.

[0011] There are a variety of ways that BLDC motors, and particularlyBLDC fans, have been controlled in attempt to provide fan-speedmanagement. In its simplest implementation, such fans may be turnedfully on or fully off. In a system incorporating such an on/offtechnique, the fan is turned on typically when a measured temperaturesomewhere in the system exceeds a first threshold limit, and the fan isturned off when that same temperature is below a second threshold limit(usually lower than the first threshold limit to provide hysteresis).This technique is effective when the fan is unnecessary for mostoperating conditions and may, therefore, be left off except in the mostunusual circumstances. Nonetheless, such control has its drawbacks. Forexample, when the fan is on, it usually runs at full speed, in whichcase the acoustic noise is at its worst. Furthermore, if the temperatureof the system hovers near the threshold temperatures, a displeasingfrequent cycling of the fan may occur as the temperature is driven belowthe second threshold and allowed to rise above the first threshold withfrequent cycling of the power to the fan.

[0012] In many systems, a temperature proportional cooling method hasbeen devised to variably increase the speed of a cooling fan as afunction of the heat generation or the temperature of the system to beprotected. One method of controlling the speed of a brushless DC motoris to regulate the voltage powering the motor to a lower voltage thanthe nominal operating voltage that the motor is normally specified torequire. Referring now to FIG. 1, a standard brushless BLDC motor 40 isshown having one power terminal tied to ground, and the other powerterminal connected to a triple darlington transistor circuit (i.e.,transistors 41, 42 and 43) to a 12-volt positive power supply voltage. Avariable control voltage, indicated in the figure as a variable voltage44, is applied to the control terminal of transistor 41 and the currentis amplified by transistor 42, and yet again, by transistor 43, toprovide on the power terminal 45 of the BLDC motor 40 a substantiallyfixed voltage which is a function of the control voltage 44. Raising thecontrol voltage 44 similarly raises the voltage applied to terminal 45,which is usually about 1.5 volts below the control voltage 44. Thecurrent drawn through BLDC motor 40 is generally proportional to thevoltage applied across the motor. For example, if the current drawn byBLDC motor 40 at 12 volts is 300 milliamps, the current drawn throughthe BLDC motor 40 will usually be approximately 150 milliamps ifterminal 45 is instead controlled to a 6-volt level. The linear voltageregulator circuit shown in FIG. 1 has several advantages, not the leastof which it is extremely easy to design. It provides for a fan speeddecrease which is almost linear with decreasing voltage. However, thepower dissipation in the voltage regulator itself is substantial. At lowfan speeds, the power dissipation of the regulator circuit may actuallyexceed the power consumed by the fan. This suggests large transistorsmay be necessary, and external heat sinks may need to be provided todissipate the heat generated by such a large amount of current flowingthrough a circuit with a large voltage drop across the same circuit.Generating all of this additional heat seems counter-productive to thepurpose of having the fan incorporated within the system in the firstplace. Consequently, such a linear voltage regulator fan-speed controlhas found decreasing use in recent years. Nonetheless, such a circuitdoes extend fan life if the system is designed to rarely require the fanto operate at full speed. Likewise, controlling the fan in this fashionmay reduce acoustic noise typically generated by the system.

[0013] Another method of controlling the speed of a brushless DC motorinvolves chopping the power to intermittently apply full power to themotor at certain times, and applying no power to the motor at othertimes. This is usually accomplished with a relatively low-frequency(30-250 Hz) pulse-width-modulated (PWM) signal. One terminal of the BLDCmotor may be connected to one power supply, and the other terminal maybe connected to ground through a power switching device which is drivenappropriately by the PWM signal.

[0014] Referring now to FIG. 2A, the brushless DC motor 40 discussedpreviously is here shown with one terminal connected to a +12 voltsource of voltage and a second terminal 54 coupled through an MOStransistor 50 to ground. The gate of transistor 50 is generated by apulse-width-modulated signal generator 51, which is responding to acontrol signal for controlling the speed of the BLDC motor 40. By usingthe pulse-width-modulated signal coupled to the gate of drivertransistor 50, and assuming that transistor 50 is sized appropriatelylarge, the average power consumed by transistor 50 is much lower than inthe linear voltage regulator circuit described in FIG. 1. This occursbecause driver transistor 50 is either fully turned on or fully turnedoff. When it is turned on by the pulse-width-modulated signal coupled toits gate terminal, the drain to source voltage is quite low (e.g., 0.5volts) because the fan motor terminal 54 is pulled nearly to ground.While there may be significant amount of current flowing through drivertransistor 50, there is not a large voltage drop across drivertransistor 50, and so the instantaneous power during this portion of acycle is very low. When driver transistor 50 is off, of course, nocurrent flows, and there is no power dissipated instantaneously bydriver transistor 50. Such a pulse-width-modulated speed control of abrushless DC motor, such as for a fan, has found wide use because of themuch lower power dissipation compared to linear voltage regulatorschemes, and due to the fact that a pulse-width- modulated signal at a30 to 250 Hz rate is easily generated in either hardware or software andat very low cost.

[0015] Refining now to FIG. 2B a similar circuit is shown incorporatinga bipolar driver transistor 52, having a current limiting base resistor53 connecting the output of the pulse-width-modulated signal generator51 to the base terminal of transistor 52 to set the drive current intothe base terminal and, consequently, provide for sufficient collector toemitter current through driver transistor 52 to fully support thecurrent flow necessary through brushless DC motor 40.

[0016] A great many commercially available integrated circuits have beendeveloped to generate useful pulse-width-modulated signals forcontrolling, in configurations similar to those shown in FIG. 2A andFIG. 2B, the speed of a brushless DC motor. Some of these circuitsinclude temperature sensors which may be configured in a closed loopfashion to automatically control the speed of such a connected fan as afunction of the locally measured temperature. Others of these integratedcircuits include provisions for communicating with the whole system.Some generate the PWM signal to drive (either directly or through abuffering circuit) one of the power terminals of a standard two-terminalBLDC fan. Others generate a simple on/off control which may be used tocontrol current through a BLDC fan.

[0017] Some types of brushless DC fans include a brushless DC motorwhich provides a tachometer output terminal. A pulse signal is generatedon the tachometer terminal by the fan as a function of the internalself-commutation of the winding stages occurring internal to the fan. Bysensing the various pulses generated on the tachometer output, therotational speed of the fan may be determined, and an RPM (revolutionsper minute) indication may be computed, or a fault condition, such as astuck or looked rotor, may also be detected. Other commercial deviceshave been developed which provide a similar tachometer output ortachometer capability when using standard two-terminal brushless DCmotors without a built-in tachometer output. Most such circuits generatethe tachometer indication by including a low-valued resistor in thecurrent path powering the fan motor. A voltage pulse across the resistoris generated when the commutation internal to the fan occurs because ofthe brief interruption of current flow through the winding stages withinthe fan motor.

[0018] Many commercial devices, particularly those incorporatingtemperature sensing capability, include provisions for sensing the speedof a fan, but lack any ability to control the speed of a fan. These aremostly used to sense alarm conditions, such as a clogged filter or anactually stuck rotor. One device, available from National SemiconductorCorporation, is known as the LM75. This device includes a serialinterface compatible with the I²CJ interface standard (initiallydeveloped by, and a trademark of Philips Corporation) for communicatingwith a host system, and includes a temperature sensor and an on/offouput for a fan control. The I²C interface, which is also similar to,largely compatible with, and known by many as the SMBus interface(popularized by Intel Corporation, Santa Clara, Calif., and widelysupported by many other companies), is a popular two-wire serialinterface, originally developed to provide power management control inbattery-powered systems.

[0019] Other devices incorporate such an I²C interface and include adigital to analog converter (DAC) for generating on an output pin ananalog voltage which can be used to control the speed of a brushless DCfan. For example, the THMC50, available from Texas Instruments, Inc.,can be used to provide a controllable analog voltage on an output pin,which voltage may be used either in a linear voltage regulator, asdescribed in relation to FIG. 1, or to modulate the pulse width of a PWMsignal for controlling fan speed, as described in relation to FIG. 2.

[0020] One industry specification known as NLX calls for a zero to10.5-volt analog signal which is used to set the fan speed. Controllerintegrated circuits are available to take this variable voltage signaland generate the pulse-width-modulated signal necessary to drive thepower terminal of a fan motor. Such an analog control voltage may alsobe provided by a DAC output of a microcontroller or other device whichmay be incorporated within the system. And yet another standard, knownas the EISCA standard, provides for the sensing of a variety of systemvoltages and system temperatures measured at several locations withinthe system, provides for a fan speed indication, and includes an I²Cinterface to communicate with the host processor. A great manyindustry-available devices provide for local and remote temperaturesensing with an I²C bus interface. In another device available fromTracewell Systems, a Chassis Management Module product includes an I²Cinterface for communication with the host processor and a PWM channeloutput for each of two fans, for controlling each fan in a fashion asdescribed in FIG. 2A and FIG. 2B. Yet another device, the LM78,available from National Semiconductor Corp., monitors temperature,voltage and fan speed, and includes an I²C interface.

[0021] In spite of these seemingly highly-specialized commercialsolutions for various temperature voltage sensing and fan speed sensingand/or control, a variety of problems remain. Most notably, the internalcommutation of the winding stages within the BLDC motor is asynchronousto the external power modulation (i.e., the “power chopping”) of the fanpower by the PWM signal driving the motor. The electrical noise isconsequently worse. Also the tachometer output may only be generatedwhen the motor is energized by the PWM signal. This makes RPMdeterminations more difficult, particularly when the fan speed is muchslower than full rate. Worse, the tachometer signal may have spuriousnoise spikes associated with the beginning and the end of the powerswitching due to the PWM signal applied to the power terminals of thefan motor. This may result in erroneous determination of the actual fanrotational speed and RPM. Moreover, all of these solutions requireadditional integrated circuits and other discrete components in additionto the fan itself to provide the cooling solution sought to be achieved.

[0022] Consequently, there is still a need for a better solution wherethermal management, power control, sound level, and reliability areparamount.

BRIEF SUMMARY OF THE INVENTION

[0023] An improved fan module includes integral fan control circuitrywhich independently implements a self-contained start and run motorcontrol loop and also includes a communications port to accept digitalcommands from a host processor and to optionally provide status andother data in response to queries from the host processor. In oneembodiment, the fan module interfaces with an internal system managementbus, such as the SMbus or I²C bus, and accepts commands and providesstatus and data in a serial digital format. A variety of commands suchas on/off, and speed control settings may be received from the hostsystem. The actual speed of the fan may be reported back when queried bythe host system. In some embodiments the temperature of the fan or ofthe air flow through the fan may be reported back when queried.

[0024] Such an improved fan module is highly useful for personalcomputers, workstations, servers, embedded systems, and other electronicsystems incorporating fans for cooling. The entire fan control circuitmay be incorporated within or attached to the fan housing and a simpleserial two-wire interface may be provided in addition to the two powerterminals for the fan, resulting in a compact four-wire interface forthe fan module. In one embodiment of the invention, the power coupled tothe BLDC motor is not regulated to lower voltages, nor is it chopped ina PWM fashion, but is maintained at the fixed power supply voltageprovided to the fan module. The power supply voltage may be chosen from,for example, 7 volts to 30 volts. All speed control, as well as on/offcontrol, is communicated to the fan via the serial interface, and thespeed is controlled independently of the particular power supply voltagechosen.

[0025] A fan module in accordance with the present invention affords allof the benefits previously achieved by varying the speed of brushless DCfans, such as enhanced ergonomics and enhanced reliability due tooperating the fan speed, at least for a significant percentage of thetime, at less than its full rated speed. In addition, however, systemreliability is further enhanced by eliminating the requirement ofadditional integrated circuits and discrete components otherwisenecessary to achieve the previously discussed forms of speed control.Moreover, by directly converting a digital speed command to appropriatesignals driving the internal winding stages of the BLDC motor within thefan module, much less electrical noise is generated compared to thatgenerated if chopping the power to a standard brushless DC fan motor.The digital command may include, for example, an eight-bit control wordto indicate the desired speed, and consequently a much greater degree ofcontrol over the fan speed may be achieved than with other methods.

[0026] Provision for responding to a variety of different commands maybe designed into such a fan module and other capabilities includedwithin its design. For example, the fan module my be designed toinitially provide a default speed when first powered up (e.g,,full-rated speed) to ensure adequate cooling without requiring anydigital commands communicated to the fan module. After reaching a runstate at the default speed, the fan module may then be commanded to adifferent speed as required by the system. Other queries which may beincorporated within such a fan module include responding to amanufacture and model number request, responding to actual angularvelocity or RPM of the fan providing the delta between the commandedspeed and the actual speed, and others. This capability allows a hostsystem to determine when the fan is unable to achieve the speedcommanded, indicating a possible clogged filter or high bearing wear,and would further allow such a system to alert a maintenance provider toschedule periodic maintenance of the fan before an outright failure ofthe fan. The fan module may also be designed to respond to a command tooperate in an automatic mode which increases fan speed appropriately asambient airflow temperature or other self-determined temperatureincreases without requiring supervision by the host system.

BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The present invention may be better understood, and its numerousobjects, features, and advantages made apparent to those skilled in theart by referencing the accompanying drawings.

[0028]FIG. 1, labeled Prior Art is a schematic drawing illustrating alinear voltage regulation method of controlling the speed of a brushlessDC motor.

[0029]FIG. 2A, labeled Prior Art, is a schematic drawing illustrating apulse□width-modulated technique for chopping the power applied to abrushless DC motor to achieve speed control of the motor.

[0030]FIG. 2B, labeled Prior Art, is a schematic drawing illustratinganother embodiment of a pulse-width-modulated technique similar to thatshown in FIG. 2A.

[0031]FIG. 3 is a three-dimensional drawing illustrating a fan module inaccordance with the present invention.

[0032]FIG. 4 is a block diagram illustrating major functional componentsof the fan module depicted in FIG. 3.

[0033]FIG. 5 is a schematic diagram illustrating one embodiment of fancontrol circuitry useful for the present invention.

[0034]FIG. 6 is a flowchart diagram illustrating, for an exemplaryembodiment, a portion of the software incorporated within amicrocontroller depicted in FIG. 5.

[0035]FIG. 7 is a flowchart diagram illustrating, for an exemplaryembodiment, the processing of an interrupt by the microcontrollerdepicted in FIG. 5, and is a companion flowchart to that shown in FIG.6.

[0036]FIG. 8 is a flowchart diagram illustrating, for an exemplaryembodiment, various steps performed to adjust the speed of the brushlessDC motor.

[0037]FIG. 9 is a flowchart diagram illustrating, for an exemplaryembodiment, the steps performed to respond to a command received by themicrocontroller depicted in FIG. 5.

[0038]FIG. 10 is a flowchart diagram illustrating, for an exemplaryembodiment, various steps performed to service an interrupt requestwithin the microcontroller depicted in FIG. 5.

[0039]FIG. 11 is a schematic diagram for a portion of a motor controlblock which includes additional capability to detect current flowthrough each winding stage within the brushless DC motor.

[0040]FIG. 12 is a schematic diagram for a portion of a motor controlblock which includes another circuit for detecting current flow throughthe winding stages within the brushless DC motor.

[0041]FIG. 13 is a functional block diagram illustrating majorfunctional components of a fan module which includes an integralcommunications port and a power control circuit for a brushless DCmotor.

[0042] The use of the same reference symbols in different drawingsindicates similar or identical items.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0043] Referring now to FIG. 3, a fan module 100 in accordance with thepresent invention is depicted. A fan housing 102 is shown and providesthe traditional frame for the fan assembly. A rotor 104 is shown with aplurality of fan blades (one of which is labeled as 106) connectedradially around the circumference of the rotor 104. Such a fan mayinclude greater or lesser numbers of fan blades than depicted in FIG. 3.A stationary armature (not shown) is located in the center of fanhousing 102, and in FIG. 3 is located below the rotor 104. The fancontrol circuitry, including a communications port for receiving digitalcommands, is integral to the fan module 100 and may be located within orattached to the fan housing 102, or may be wholly or partially locatedwithin the stationary armature in the center of the fan housing 102. Acable 110 is shown which provides a connection to terminal pins 112(shown here with five terminal pins 112) which are connected to aconnector 108. This connector 108 is plugged into a receiving socket toprovide power to the fan module and to provide connections to thecommunication port as well. Other numbers of terminal pins 112 may alsobe advantageously implemented. All of the necessary control circuitry ispreferably wholly contained within the fan module, and no externalcomponents are necessary to provide any direct control of the speed ofthe fan, nor for the actual control loop of the winding stagesthemselves. Alternatively, rather than a cable 110, a connector may beintegrated within the fan housing 102 to receive a cabled connector.

[0044] Referring now to FIG. 4, a functional block diagram is showncorresponding to the fan module 100 depicted in FIG. 3. A fan controlcircuit 121 includes a communication port 124 and a motor controlcircuit 127. Power for the fan control circuit 121 is provided onterminal 112 a and the reference potential, ground, is provided onterminal 112 b. The communications port 124, for this embodiment,provides for a two-wire serial interface. A serial clock is provided tothe fan control circuit on terminal 112 c and a bi-directional serialdata signal is communicated to and from the fan control circuit 121 onterminal 112 d. The serial clock and serial data signals arecommunicated directly to a serial interface 125 which communicates witha command interpreter 126, both of which are included within thecommunication port 124. An optional temperature sensor 134 may beincluded within the fan control circuit 121 to provide the capability ofascertaining a localized temperature within the fan module 100. Examplesof various particularly useful commands include a Set□Desired-Fan-Speedcommand (indicating a desired speed setting which is chosen from aplurality of available speed settings), a Query-Actual-Fan-Speedcommand, a Pan□Off command, a Query-Actual-Temperature command, andothers.

[0045] The motor control circuit 127 includes a commutation control 128which generates pulse-width-modulated signals on its outputs 129 a and129 b, which are buffered by a driver 130 and coupled to energize theBLDC motor winding stages 122 by way of outputs 131 a and 131 b of thedriver 130. Proper commutation of the motor winding stages 122 resultsin rotor movement which is sensed by a rotor position sensor 132 andcommunicated via node 133 to the commutation control 128. Consequentlythe commutation control 128, the driver 130 and the rotor positionsensor 132, along with the motor winding stages 122, form a closed loopmotor control. A FAULT signal may optionally be generated by thecommutation control 128 to directly provide at an optional terminal pin112 e an indication of a fault condition such as a stuck rotor or arotor whose actual rotational speed differs significantly from thatcommanded.

[0046] One of many potential implementations of the functional blockdiagram shown in FIG. 4 is illustrated in FIG. 5. In this circuit, manyof the functional blocks are implemented within a single integratedcircuit programmable microcontroller 146. In particular the serialinterface 125 and the command interpreter 126 of the communication port124, and the communication control 128 of the motor control circuit 127are all implemented within the microcontroller 146. Suitablemicrocontrollers are well known in the art. One such device is an 8-bitmicrocontroller known as the PIC16C62B, available from MicrochipTechnology, Inc., located in Chandler, Ariz. This particularmicrocontroller includes 2048 words (each 14 bits wide) of one-timeprogrammable program memory, 128 bytes of random access read/writememory (RAM), several programmable timers, and a serial I/O interfacecompatible with the I²C interface. The SMBus interface was based uponthe earlier I²C interface, and the use of each is widely known in theart. The SMBus specification revision 1.1, dated Dec. 11, 1998, isincorporated herein by reference in its entirety. Other microcontrollershaving fewer bytes of RAM and/or having factory programmed read-onlymemory instead of one-time programmable memory may easily be utilizedinstead, particularly to provide for lower production costs whenmanufactured with high unit volumes.

[0047] The rotor position sensor 132, previously shown in FIG. 4, may beimplemented using a hall sensor 148. Suitable Hall-effect devices arewell known in the art. One especially suitable device is the TLE4935GHall-effect sensor, available from Infineon Technologies Corp, locatedin Cupertino, Calif. A pull-up resistor 150 is included on the opencollector output 170 of the hall sensor 148, which output iscommunicated to an interrupt pin of the microcontroller 146. Atransition on the output of the hall sensor 170 (in response to movementof the rotor) generates an interrupt request within the microcontroller146, which is described in greater detail below.

[0048] A positive power supply voltage is conveyed to the fan controlcircuit 121 using terminal 112 a. Nominally, this may be a 12-volt powersupply, although voltages ranging from, for example, 7 volts to 30 voltsmay be easily accommodated. The voltage regulator 142 is provided whichreceives the input voltage and generates a regulated output of 5 volts(for this embodiment) on output node 144. Suitable voltage regulatorsare well known in the art. One especially suitable device is theLM78LO5M voltage regulator, available from Fairchild Semiconductor Corp,located in Santa Clara, Calif. This 5-volt internal “power supply”voltage on node 144 is used to power both the integrated microcontroller146 and the hall sensor 148.

[0049] A crystal 152 and two capacitors 154, 156 are provided to form aparallel resonant circuit between nodes 172, 174 for an internaloscillator within the microcontroller 146, which provides a timingreference for the internal clock generator contained withinmicrocontroller 146. An 8 MHz crystal may be advantageously selected,along with 22 pF capacitors, to provide an 8 MHz clock rate. This clockrate provides adequate cycle times to implement the algorithms describedherein. As before, the serial clock and serial data signals arecommunicated by way of terminals 112 c and 112 d, respectively, to nodes176, 178 and communicated directly to the microcontroller 146, whichimplements the serial interface internally. An output of themicrocontroller 146 or a configurable input/output pin is appropriatelyconfigured to generate the FAULT output which is communicated via node180 to terminal 112 e. The driver 130 is implemented with a pair of MOSdriver transistors 15 a, 15 b. These driver transistors 15 a, 15 breceive on their respective gate terminals 182 a, 182 b respectivepulse-width-modulated signals generated by the microcontroller 146. Eachof these signals, when active, causes a low impedance path to groundthrough the respective driver transistor 15 a, 15 b, which provides acurrent path for energizing a respective winding stage 122 a, 122 b ofthe BLDC motor. The two driver transistors 15 a, 15 b are preferablyimplemented using an integrated pair of driver transistors, indicated bydashed line 158. Many suitable devices are available, including theSi4936DY Dual N-Channel 30-volt power MOSFET pair, available from VishaySiliconix, located in Santa Clara, Calif. Alternatively, two individualdiscrete transistors (e.g., MOSFETs or bipolar) could be implemented. Inother cases, a microcontroller may be utilized which can directly drivethe winding stages without using an external buffer.

[0050] Zener diodes 160 a and 160 b are provided to swallow theinductive voltage kick otherwise generated by the winding stages 122 a,122 b when the respective driver transistor 15 a, 15 b suddenly shutsoff during normal commutation of the winding stages 122 a, 122 b. Zenerdiodes with 20-volt zener voltages may be advantageously used to provideadequate over-voltage protection for the outputs of the powertransistors (which, for this embodiment, are 30-volt MOSFETs). Diode 162is provided to ensure that current does not flow back into the positive12-volt power supply node (connected to terminal 112 a) when the windingstages 122 a, 122 b are commutated. Capacitor 164 is a filteringcapacitor to help stabilize the voltage on node 166 when the variouswinding stages 122 a, 122 b are energized and de-energized during normalcommutation. The movement of the rotor is indicated y dashed line 190and the rotor position is sensed by the hall sensor 148. A transition onthe output node 170 of the hall sensor is generated every time the rotorrotates 90 degrees. This transition then generates an interrupt requestwithin the microcontroller 146, which when serviced, commutates thewinding stages by energizing the next winding stage to keep the rotorrotating.

[0051] Referring now to FIG. 6, a flowchart diagram is shown whichillustrates the initialization and main control loop of exemplaryfirmware programmed into the microcontroller 146 shown in FIG. 5. Thisflowchart is but one of many possible flowcharts which could beimplemented to carry out the functions required within themicrocontroller 146. During power up, the microcontroller 146 isautomatically reset (flowchart step 200). Control then proceeds to step202, which is the start of the main control portion of this firmware.Control first passes to step 204 where the controller is initialized.Examples of such initialization include setting internal timerconfiguration and default/preload values, configuring timer prescalersand watchdog timers, configuring I/O ports to select one of severalmodes of operation and particular I/O characteristics, initializingprogramming variables, and similar operations depending upon theparticular microcontroller chosen and other implementation decisions.Control then passes to step 205 which sets the default fan speed. Thisis provided so that, in the absence of any communication via thecommunication port, the fan module will power up to a default speedrather than awaiting a command me rely to turn the fan on. After settingthe default fan speed, control passes to step 216 which checks the rotorposition. This is done by interrogating the output of hall sensor 148.In the circuit shown in FIG. 5, the interrupt (INT) pin on themicrocontroller 146 to which the hall sensor 148 is connected operatesas a traditional interrupt (generating the interrupt on a transition ofthe input signal), but the input signal can also be sampled using alevel-sensitive input buffer. The appropriate winding stage is thenenergized in step 208 to initiate movement of the rotor and, optionally,a watchdog timer is set. A control loop is then entered in step 210which checks for each of two specific flags being set. Each of theseflags is set, for example, by an interrupt service routine as describedbelow. At step 210 the ROTATION flag is checked; if it is set, controlpasses to flowchart A, labeled as 212. If not set, control passes tostep 214 which interrogates the COMMAND flag. If set, control passes toflowchart B, labeled as 216. If not, control returns to step 210. Eachof these flowcharts A and B execute and return to the main control loopat step 218, which returns control to step 210 to repeat the flaginterrogations.

[0052] Referring now to FIG. 7, the basic interrupt service processingis depicted in this flowchart at step 230. Whenever an interrupt occurs,indicated in this flowchart at step 230 as a test for such an interruptoccurring, control passes to an interrupt service routine ISR, labeledas 232, which ascertains the nature of the interrupt and processes theinterrupt accordingly. Control then returns at step 234 from theinterrupt service routine 232, and passes back to step 230 to awaitfurther interrupts. The flowchart depicted in FIG. 7 for mostmicrocontrollers is not explicitly programmed (other than an interruptservice routine address or vector), but represents the typicalfunctionality of microcontrollers that support interrupts and which maybe configured to vector to a particular interrupt service routinewhenever the interrupt occurs.

[0053] Referring now to FIG. 8, a flowchart diagram is shown which isexecuted whenever the ROTATION flag is detected at earlier step 210 asbeing set. In the exemplary embodiment, the ROTATION flag is set by aninterrupt service routine which responds to a rotation interrupt whichis generated whenever the hall sensor 148 senses that the rotor hasrotated 90 degrees (i.e., one-quarter of the rotation period), asdescribed in greater detail below. After entering at step 212, controlfirst passes to step 240 which compares the “measured quarter-period”with the “desired quarter-period” (which variable is set based upon areceived fan speed command). If the measured quarter- period is greaterthan the desired, control passes to step 242 which decreases the valueof a pulse width variable. This variable controls the duration of bothpulse-width-modulated signals generated on the two outputs of thecommutation control 128, which thus controls the volt-ampere (V-A)product of an energized winding stage. Control then returns at step 218to the main control loop shown in FIG. 6. If at step 240 the test fails,control passes to step 244, and if the measured quarter-period is lessthan the desired quarter-period, control passes to step 246 whichincreases the pulse width of the pulse-width-modulated output signals,Again, control returns at step 218 to the main control loop. If themeasured quarter-period is equal to the desired quarter-period, which istested at step 248, then no adjustment is necessary to the timing of thepulse-width-modulated commutation output signals (i.e., neither thepulse width (duty cycle) nor the period), and control immediatelyreturns at step 218. If all three tests fail, namely, the test performedat steps 240, 244 and 248, then control passes to step 250 which may beconfigured to report a fault, either by a dedicated fault pin, such asterminal 112 e, or through the communication of a fault indication byway of the communication port to an external system connected thereto.

[0054] Referring now to FIG. 9, a flowchart diagram is shown which isexecuted whenever the COMMAND flag is detected at step 210 as being set.Control enters at step B, labeled 216, and proceeds to step 260 tovalidate the command received. At step 262 the command is tested and, ifdetermined to be a command to adjust the fan speed, control passes tostep 264 which updates the “desired quarter-period” variable used to setthe timing of the pulse-width-modulated commutation signals used todrive the motor winding stages within the fan. Otherwise the command istested again at step 266 and, if determined to be a REPORT STATUS (i.e.,QUERY) command, control passes to step 268 which writes the appropriatestatus data to the host by way of the communication port 124. If not areport status command, then control passes to step 270 to report afault, again, either by way of a hard-wired pin and/or by a status wordcommunicated to the host processor by way of the communication port.

[0055] Referring now to FIG. 10, an exemplary embodiment of a suitableinterrupt service routine 232 is depicted. Upon entering at step 232,the nature of the interrupt is determined by steps 280, 284 and 292.There are at least three types of interrupts explicitly processed bythis routine: a duty cycle interrupt, a rotation interrupt, and acommand interrupt. Additionally, other types, such as a watchdog timerinterrupt, may also be processed, as described below.

[0056] Regarding a duty-cycle interrupt, each of thepulse-width-modulated commutation signals is controlled by an internalvariable which sets the duty cycle (i.e., pulse width) of the signal.When each PWM signal is driven active, an internal timer is loaded witha value corresponding to the present pulse width setting. When the timer“times out,” an interrupt request is generated to indicate that the PWMsignal should be driven inactive (thereby de-energizing the windingstage). This internal timer-generated interrupt request is hereinreferred to as a duty-cycle interrupt. Initially at step 280, if theinterrupt is determined to be a duty-cycle interrupt, then controlpasses to step 282 which de-energizes the currently-driven windingstage, and control then returns at step 218 to await further interrupts.During startup of the fan, the duty cycle of the PWM signals is set formaximum speed to provide maximum torque to ensure that the fan beginsrotation and spins up. For example, a value of 30 ms per winding stagemay be set for the PWM signals. Such a long value ensures that, atstartup, a winding stage will stay energized until the rotation of therotor causes the next winding stage to be energized.

[0057] The second type of interrupt is a rotation interrupt. For every90 degrees of rotor rotation, the hall sensor 148 generates a transitionon its output node 170 which, being coupled to an external interrupt pinof the microcontroller 146, generates an interrupt request within themicrocontroller 146. This type of interrupt indicates when the nextwinding stage should be driven to continue proper commutation of themotor. If the interrupt is determined, at step 284, to be a rotationinterrupt, then control passes to step 286 which captures the measuredquarter-period by storing the elapsed time since the previously-drivenwinding stage was earlier energized. This may be done in a variety ofways, including using programmable timers, software timing loops, orspecialized hardware. At step 288, the currently-driven winding stage isde□energized if still found to be energized (as would typically occur ata full-speed setting or during fan startup), and the opposite windingstage is energized. The ROTATION flag is set at step 290, a watchdogtimer used for detecting, if timed-out, a stuck rotor is reset, andcontrol returns at step 218 to await further interrupts.

[0058] Lastly, if the interrupt is a command interrupt (caused by, forexample, the serial interface detecting a received command), controlpasses from step 292 to step 294 which sets the COMMAND flag and thencontrol returns at step 218 to await further interrupts. If theinterrupt is other than one of these three types, control passes to step296, which reports a fault condition. An example of such a fault is astuck rotor. A watchdog timer may be configured to time out well after(e.g., 500 ms) a winding stage is energized unless reset by a rotationinterrupt. Consequently, if the rotor does not begin to rotate and startgenerating rotation interrupts, the fan may detect its stuck rotor andalert a host system to take necessary action.

[0059] The microcontroller 146 may be configured with a variety ofregisters. Some of these registers hold variables which may either bewritten by a host system or read by the host system. In the I²C busprotocol, a pointer register selects which register is read from orwritten to. At power-up, the default value of the pointer register isset to reference the Command Speed (CS) register. The CS register ispreferably a write-only register, and is used to dictate the desiredspeed of the fan. Another register is the Reported Speed (RS) register,a preferably read-only register used to report the actual speed of thefan. Under normal operating conditions, the two are identical. In theevent that the fan motor cannot operate at the commanded speed, the RSregister indicates the actual speed. In a system that commands and readsfan speed, a mismatch of the CS and RS registers may indicate a blockedfan or clogged filter, thus causing an alert condition in the systemlogic.

[0060] For an exemplary embodiment compatible with the I²C interface, awrite by the system host to the fan module 100 includes the address byteand the pointer byte to set the desired Pointer Register contents, asfollows:

Pointer Byte

[0061] P7 P6 P5 P4 P3 P2 P1 P0 0 0 0 0 0 0 0 Register Select

Register Select Truth Table

[0062] P0 Register 0 Commanded Speed 1 Reported Speed

[0063] If the pointer register contents are correct, then a read or awrite is performed by the host system issuing the correct address bytefollowed by a data byte (for a write) or alternatively for a read, bythe host system issuing the correct address byte followed by theretrieval of the data byte. Other pointer byte values may be used toaccess additional registers, such as a localized temperature within thefan module 100, and other possible features. By setting the pointerregister once, sequential read or write commands to the same registermay be executed over the I²C bus without re-transmitting an “address” ofthe register for each access, thus reducing bus traffic.

[0064] As described above, the speed of the fan may be controlled by thevalue written into the CS register. In an exemplary embodiment, thereare 255 valid speed values that may be written to the CS register. Thespeed of the fan is linearly proportional to the value contained in theCS register as described in the table below: Commanded Speed RegisterByte Speed 1 × 01 1000 RPM 0 × 02 1011 RPM . . . . . . 0 × FE 3988 RPM 0× FF 4000 RPM

[0065] Currently, the value 0×00 may be used as a FAN OFF command.Reported speed values may be arranged to correspond to the commandedspeed values one to one, making system comparison logic very simple.

[0066] As described above, the fan module 100 provides a communicationsport having a two-wire serial interface. Commands received are converteddirectly into a plurality of commutation signals which energize thewinding stages of the BLDC motor to achieve variable speed control ofthe fan without varying the voltage across the winding stages whenenergized. The total parts count is very low, and facilitatesincorporating the entire fan control circuit integrally with the fanmodule. A fan module in accordance with the present invention iswell-suited for use in a microprocessor-based system, such as a personalcomputer, workstation, embedded system, etc.

[0067] Referring now to FIG. 11, low-valued series resistors may beincluded between the driver transistors 15 a, 15 b and the respectivewinding stages 122 a, 122 b so the magnitude of the current flow througheach of the winding stages may be ascertained. For example, resistors200 a, 200 b are respectively included between winding stages 122 a, 122b and driver transistors 15 a, 15 b. The voltage drop across each ofthese resistors 200 a, 200 b may be measured by a respectivedifferential analog-to-digital (ADC) circuit 204 a, 204 b, which may beincorporated within certain available integrated circuitmicrocontrollers (as shown here within microcontroller 146) or may beimplemented externally to a microcontroller. In particular, to sense thecurrent flowing through winding stage 122 a, one input of thedifferential ADC circuit 204 a (shown here as the positive input) isconnected to node 16 a, and the other input (shown here as the negativeinput) is connected to node 202 a. Likewise, the current flowing throughwinding stage 122 b may be determined by connecting the positive inputof differential ADC circuit 204 b to node 16 b, and the negative inputto node 202 b. By including a capability such as this, the magnitude ofthe current flow through the winding stages may be determined, and ifexcessive, or alternatively if non-existent, an appropriate status orfault indication may be communicated.

[0068] Referring now to FIG. 12, a single low-valued series resistor maybe included between the driver transistors 15 a, 15 b and theirrespective source terminal connections to ground so that the magnitudeof the current flow through either winding stage may be ascertained. Forexample, resistor 206 is included between node 208 and ground. Thesource terminal of each driver transistor 15 a, 15 b is connected tonode 208 rather than directly to ground so that the current flowingthrough an energized winding stage also flows through resistor 206. Thevoltage drop across this resistor 206 (and inferentially, the currentflow through the winding stages) may be measured by a singleanalog-to-digital (ADC) circuit 210, which preferably may beincorporated as shown here within the integrated circuit microcontroller146 (using, for example, an internally generated reference voltage,VREF, as is found in several commercially available microcontrollers) ormay be implemented externally to a microcontroller. By including acapability such as this, the magnitude of the current flow through thewinding stages may be determined in a manner which requires fewercircuit resources than that shown in FIG. 11. As before, if the currentis either excessive or non-existent, an appropriate status or faultindication may be generated and/or communicated to a host.

[0069] Referring now to FIG. 13, a functional block diagram of anotherfan module is shown. A communication port 124 includes a serialinterface 125 coupled to a command interpreter 126, as before. In thisparticular fan module, a motor control circuit 226 is more typical ofthe type utilized in a stand-alone two-terminal industry□standardbrushless DC fan motor. It includes a commutation control circuit 228for generating at least two commutation signals which are buffered bydriver 230 to drive the motor winding stages 122. A position sensor 232detects the position of the rotor, and provides an input to thecommutation control circuit 228 for commutating the winding stages andfor energizing the next winding stage. The speed of the motor driven bythe motor control circuit 226 may be controlled by controlling the powerapplied to the entire motor control circuit 226. This is done by powercontrol circuit 222, which is controlled by speed control circuit 220.The power control circuit 222 may include a linear voltage regulatorcircuit which is used to vary the voltage impressed across the motorcontrol circuit 226 as a function of tho desired rotational speed of therotor. Alternatively, the power control circuit may include apulse-width□modulating circuit to chop the power impressed across motorcontrol circuit 226. In either case, the fan module, includes, as shown,a communication port integrated with the fan module for directlyresponding to fan control commands. Moreover, the voltage coupled to thefan module by a system into which the fan module is incorporated is aconstant voltage. By incorporating the power control circuit 222 intothe fan module, the user is relieved of the burden of providingadditional external components for controlling a separate fan module.Moreover, system reliability is improved.

[0070] While the invention has been largely described with respect tothe embodiments set forth above, the invention is not necessarilylimited to these embodiments, which are given by way of example only.Variations and modifications of the embodiments disclosed herein may bemade based on the description set forth herein, without departing fromthe scope and spirit of the invention as set forth in the followingclaims. For example, suitable implementations may be fashioned inhardware or software, or a combination thereof. Portions may beimplemented using a programmable microcontroller, a general purposemicroprocessor, dedicated hardware, a microcontroller core mapped into acustom integrated circuit, gate array, standard cell array, an ASIC, orany of several widely available circuit forms which can be chosen whichmeet the necessary performance requirements. Software timing loops maybe used rather than or in combination with hardware interrupts. A serialinterface may be provided in some commercially availablemicrocontrollers, may be fashioned using hardware, or may even beimplemented using largely software methods executing on relativelygeneral purpose hardware. A variety of well-known serial interfaces maybe chosen, including an SMBus or I²C interface, an RS-232 interface (orits military or ITU equivalent), a 3-wire SPI interface, a UniversalSerial Bus (USB) interface, or others. A power supply voltage other than+12 volts may be chosen according to system availability and designerchoice. Rotation sensors other than hall sensors may be chosen such as,for example, optical sensors. Accordingly, other embodiments,variations, and improvements not described herein are not necessarilyexcluded from the scope of the invention, which is defined by thefollowing appended claims.

What is claimed is:
 1. A cooling module comprising: a cooling device; acooling module circuit comprising: a cooling device control circuit; atleast one communications port; wherein each communications port isadapted to receive at least one command; and wherein said cooling devicecontrol circuit is adapted to control the cooling device's operation atleast partially responsively to received commands.
 2. The module ofclaim 1, wherein the cooling module circuit is implemented so as to beessentially contained in a single integrated circuit (IC).
 3. The moduleof claim 2, wherein the cooling module circuit is implemented so as tobe entirely contained in the single IC.
 4. The module of claim 3,wherein the single IC comprises: at least one power supply voltageterminal; at least one reference voltage terminal; and at least onecommunications port terminal.
 5. The module of claim 3, wherein thesingle IC comprises a programmable microcontroller.
 6. The module ofclaim 3, wherein the single IC comprises an application specificintegrated circuit (ASIC).
 7. The module of claim 1, wherein the coolingmodule circuit is physically mounted on the cooling device.
 8. Themodule of claim 1, wherein the cooling device is a fan.
 9. The module ofclaim 8, wherein the cooling device control circuit comprises a motorcontrol circuit driven by pulse width modulation.
 10. The module ofclaim 1, wherein the cooling device is a blower.
 11. The module of claim1, wherein the commands comprise digital commands.
 12. The module ofclaim 11, wherein the communications port is adapted to handle serialcommunications.
 13. The module of claim 12, wherein the communicationsport is SMB-compatible.
 14. The module of claim 13, wherein thecommunications port is I²C-compatible.
 15. The module of claim 1,wherein the communications port is adapted to transmit output data. 16.The module of claim 15, wherein the output data comprises temperature asmeasured within close proximity to the cooling device.
 17. The module ofclaim 15, wherein the output data comprises current cooling deviceoperational output.
 18. The module of claim 15, wherein the coolingdevice comprises a fan and the output data comprises current fanrotational speed.
 19. A computing device comprising at least one coolingmodule of claim
 1. 20. A network comprising at least one computingdevice of claim 19.